package com.tensquare.friend.dao;

import com.tensquare.friend.pojo.Friend;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

/**
 * 交友dao层
 */
public interface FriendRepository extends JpaRepository<Friend, String> {

    /**
     * 根据用户ID和被关注用户Id查询记录数
     * @param friendid
     * @return
     */
//    @Modifying // 注意： 这里不能用。因为是查询。只有更新操作才能用
    @Query(value = "SELECT COUNT(userid) FROM tb_friend WHERE userid = ?1 AND friendid = ?2", nativeQuery = true)
    public int selectCount(String userid, String friendid);

    /**
     * [和上面二选一]根据用户ID和被关注用户Id查询记录数
     * @param friendid
     * @return
     */
    public Friend findByUseridAndFriendid(String userid, String friendid);

    /**
     * 根据userid和friend 设置为好友状态（互相喜欢）
     * @param userid
     * @param
     */
    @Modifying // 修改操作 。需要添加modifying
    @Query(value = "UPDATE tb_friend SET islike = ?3 WHERE userid  =  ?1 AND friendid = ?2", nativeQuery = true)
    void updateLike(String userid,String friendid, String like);


    /**
     * 删除好友
     */
    @Modifying
    @Query(value = "DELETE  FROM tb_friend WHERE userid = ?1 AND friendid = ?2", nativeQuery = true)
    public void deleteFriend(String userid, String friendid);
}
